
class Solution{
    /**
     * 问题：求山峰顶
     * 链接：https://leetcode.cn/problems/peak-index-in-a-mountain-array/
     * 时间复杂度：O(logN);
     * 空间复杂度：O(1);
     */
    public int peakIndexInMountainArray(int[] arr) {
        int left = 1,right = arr.length - 2;

        while(left < right){

            int mid = left + (right - left + 1) / 2;

            if(arr[mid] > arr[mid - 1]) left = mid;
            else right = mid - 1;
        }
        return left;
    }

    /**
     * 问题：查找峰值位置
     * 链接：https://leetcode.cn/problems/find-peak-element/
     * 时间复杂度：O(logN);
     * 空间复杂度：O(1);
     */
    public int findPeakElement(int[] nums) {
        int left = 0,right = nums.length - 1;

        while(left < right){

            int mid = left + (right - left) / 2;

            if(nums[mid] > nums[mid + 1]) right = mid;
            else left = mid + 1;

        }
        return left;
    }




}